using UnityEngine;

public class PlayerState_蓄力 : PlayerStateBase
{
	private bool _Is释放蓄力;

	public PlayerState_蓄力()
	{
		_Data_Player招式_系数 = MonoSingleton<MyDataManager>.Instance._Data_玩家招式._蓄力;
	}

	public override void OnEnter()
	{
		_Mono._GO_蓄力特效.SetActive(value: true);
		_Is释放蓄力 = false;
		_Timer = 0.4f;
		_Mono._On_Curr豆子_Change += F_豆子变化时;
	}

	public void F_豆子变化时(int val)
	{
		if (val != 0)
		{
			MonoSingleton<AudioManager>.Instance.F_Play_SFX(_Mono._AudioC_蓄力加豆子时);
		}
	}

	public override void OnExit()
	{
		_Mono._GO_蓄力特效.SetActive(value: false);
		_Mono._On_Curr豆子_Change -= F_豆子变化时;
		_Mono._释放豆子 = _Mono._Curr豆子;
		_Mono._Curr豆子 = 0;
		_Mono._Curr蓄力 = 0f;
	}

	public override void OnUpdate()
	{
		if (_Mono.F_PlayerMove(6f))
		{
			_Mono._Ani.Play("跑步");
		}
		else
		{
			_Mono._Ani.Play("站立");
		}
		_Timer -= Time.deltaTime;
		if (_Is释放蓄力 && _Timer <= 0f)
		{
			_Mono.ChangeToState(StateType_Player.释放蓄力);
		}
		if (Input.GetKeyUp(KeyCode.K))
		{
			_Is释放蓄力 = true;
		}
		else if (Input.GetKeyUp(KeyCode.L))
		{
			F_翻滚();
		}
		_Mono._Curr气力 -= _Data_Player招式_系数._气力消耗 * Time.deltaTime;
		if (_Mono._Curr气力 <= 0f)
		{
			_Is释放蓄力 = true;
		}
		if (_Mono._Curr豆子 != 3)
		{
			_Mono._Curr蓄力 += (_Data_Player招式_系数._棍势值 + _Mono._蓄力额外速度) * Time.deltaTime;
		}
	}

	public override void F_重攻击Up()
	{
		_Is释放蓄力 = true;
	}

	public override void F_翻滚()
	{
		_Mono._GO_蓄力特效.SetActive(value: false);
		_Mono.ChangeState(StateType_Player.翻滚);
	}
}
